package demo.activiti.common.persistence;

import java.util.List;

/**
 * Created by wgc on 2017/3/4.
 */
public interface BaseMapper<T> {

    /**
     * 保存一个实体，值为 null 的属性也会保存，不会使用数据库默认值
     */
    int insert(T t);

    /**
     * 保存一个实体，值为 null 的属性不会保存，使用数据库默认值
     */
    int insertSelective(T t);

    /**
     * 根据主键更新实体全部字段，null 值也会更新
     */
    int update(T t);

    /**
     * 根据主键更新值不是 null 的字段
     */
    int updateSelective(T t);

    /**
     * 根据实体中的属性进行查询，只能有一个返回值，有多个结果则抛出异常
     */
    T findOne(T t);

    /**
     * 根据实体中的属性进行查询
     */
    List<T> findList(T t);

    /**
     * 根据实体中的属性统计数量
     */
    int count(T t);

    /**
     * 根据实体中的属性作为条件进行删除
     */
    int delete(T t);
}
